package cn.fl.hsj.service;

import java.util.Date;
import java.util.List;

import cn.cmm.base.framework.exception.BaseException;
import tc.relationmap.facade.relationmap.hsj.dto.HsjBasicDTO;
import tc.relationmap.facade.relationmap.hsj.dto.HsjPersonDTO;
import tc.relationmap.facade.relationmap.hsj.dto.HsjShareHolderDTO;

public interface IHsjQueryService {

	/**
     * 根据供应商或挂靠公司名称获取基本信息
     * @param selectType  查询类型1 企业名称2注册号3统一社会信用* 4代码5有数企业 ID
     * @param selectValue 供应商或挂靠公司名称
     * @return HsjBasicDTO
     */
    public HsjBasicDTO getCommInfoByNameAndType(String selectType, String selectValue) throws BaseException ;
    
    /**
     * 根据供应商或挂靠公司名称获取主要人员信息
     * @param name 供应商或挂靠公司名称
     * @return List
     * @throws BaseException
     */
    public List<HsjPersonDTO> searchPersonDTOListByName(String name) throws BaseException ;
    /**
     * 根据供应商或挂靠公司名称获取股东信息
     * @param name 供应商或挂靠公司名称
     * @return List
     * @throws BaseException
     */
    public List<HsjShareHolderDTO> searchShareHolderByName(String name) throws BaseException ;

    /**
     * 根据供应商或挂靠公司名称获取基本信息（时效性）
     * @param selectType  查询类型1 企业名称2注册号3统一社会信用* 4代码5有数企业 ID
     * @param selectValue 供应商或挂靠公司名称
     * @param time  记录创建时间上限
     * @param source JOB:定时任务，MANUAL：手动执行变更
     * @return HsjBasicDTO
     */
    public HsjBasicDTO getCommInfoByNameAndTypeOnTime(String selectType, String selectValue, Date time, String source) throws BaseException ;
}
